package setting

type ServerConfig struct {
	Name          string `mapstructure:"name" json:"name"`
	*ConsulConfig `mapstructure:"consul" json:"consul"`
	*RedisConfig  `mapstructure:"redis" json:"redis"`
}

type RedisConfig struct {
	Host     string `mapstructure:"host" json:"host"`
	Port     int    `mapstructure:"port" json:"port"`
	Password string `mapstructure:"password" json:"password"`
	DB       int    `mapstructure:"db" json:"db"`
}

type ConsulConfig struct {
	Host string   `mapstructure:"host" json:"host"`
	Port int      `mapstructure:"port" json:"port"`
	Name string   `mapstructure:"name" json:"name"`
	Tags []string `mapstructure:"tags" json:"tags"`
}

type NacosConfig struct {
	*NacosCliConfig `mapstructure:"nacos_cli" json:"nacos_cli"`
	*NacosSerConfig `mapstructure:"nacos_ser" json:"nacos_ser"`
}

type NacosCliConfig struct {
	NamespaceId string `mapstructure:"namespace_id" json:"namespace_id"`
	LogDir      string `mapstructure:"log_dir" json:"log_dir"`
	CacheDir    string `mapstructure:"cache_dir" json:"cache_dir"`
	LogLevel    string `mapstructure:"log_level" json:"log_level"`
	User        string `mapstructure:"user" json:"user"`
	Password    string `mapstructure:"password" json:"password"`
	DataId      string `mapstructure:"data_id" json:"data_id"`
	Group       string `mapstructure:"group" json:"group"`
}

type NacosSerConfig struct {
	IpAddr string `mapstructure:"ip_addr" json:"ip_addr"`
	Port   uint64 `mapstructure:"port" json:"port"`
}
